package com.huitong.admin.system.service;

import com.huitong.admin.system.domain.dto.StudentDTO;
import com.huitong.admin.system.domain.dto.TeacherDTO;
import com.huitong.admin.system.domain.dto.UserPageDTO;
import com.huitong.admin.system.domain.vo.UserVO;
import com.huitong.common.core.domain.Result;
import com.huitong.common.mybatis.domain.PageResult;

/**
 * 用户信息服务层
 *
 * @author fromdrowning
 * @date 2024/5/10 17:40
 */
public interface UserService {

    /**
     * 新增学生信息
     *
     * @param studentDTO 学生信息
     */
    void insertStudent(StudentDTO studentDTO);

    /**
     * 新增教师信息
     *
     * @param teacherDTO 教师信息
     */
    void insertTeacher(TeacherDTO teacherDTO);

    /**
     * 查询用户信息
     *
     * @param id   学号
     * @param role 角色
     * @return 用户信息
     */
    Result<UserVO> selectUser(Long id, String role);

    /**
     * 查询用户信息
     *
     * @param userPageDTO 分页信息
     * @return 分页信息
     */
    PageResult<UserVO> pageUser(UserPageDTO userPageDTO);

    /**
     * 修改学生信息
     *
     * @param studentDTO 学生信息
     */
    void updateStudent(StudentDTO studentDTO);

    /**
     * 修改教师信息
     *
     * @param teacherDTO 教师信息
     */
    void updateTeacher(TeacherDTO teacherDTO);

    /**
     * 删除用户信息
     *
     * @param id   学号
     * @param role 角色
     */
    void deleteUser(Long id, String role);

}
